package com.yuw.oop.lianxi;

import java.util.Scanner;

public class Manager {
	// 属性
	// 成员信息数组
	private Person[] arrMemebers;

	// 行为
	/**
	 * 初始化行为
	 */
	public void init() {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入成员人数：");
		// 接收成员人数
		int count = sc.nextInt();
		// 初始化成员数组
		arrMemebers = new Person[count];

		for (int i = 0; i < arrMemebers.length; i++) {
			// 创建一个变量
			Person per = null;
			System.out.println("请学生输入的成员类型【1:学生，其他：老师】");
			// 接收标志类型
			int typeFlag = sc.nextInt();
			// 临时变量，提示信息类型
			String strMsg = typeFlag == 1 ? "学生" : "教师";
			// 初始化父类信息
			System.out.println("请输入" + strMsg + "姓名：");
			String strName = sc.next();
			System.out.println("请输入" + strMsg + "性别：");
			String strSex = sc.next();
			System.out.println("请输入" + strMsg + "年龄：");
			int age = sc.nextInt();
			if (typeFlag == 1) {
				// 学生特有的信息
				System.out.println("请输入学生考试成绩：");
				double cScore = sc.nextDouble();

				// 使用已经输入信息创建一个学生类的实例对象
				// 此处使用了多态：父类指向子类
				per = new Student(strName, strSex, age, cScore);
			} else {
				// 教师的信息
				System.out.println("请输入教授的课程名：");
				String strCourseName = sc.next();
				// 使用已经输入信息创建一个教师类的实例对象
				// 此处使用了多态：父类指向子类
				per = new Teacher(strName, strSex, age, strCourseName);
			}

			// 将当前的对象存入数组中
			arrMemebers[i] = per;
		}

	}

	/**
	 * 打印员工信息的行为
	 */
	public void printAllInfo() {
		// 遍历成员数组，打印成员信息
		if (arrMemebers != null && arrMemebers.length > 0) {
			// 遍历打印
			// 多态：父类指向子类
			for (Person per : arrMemebers) {
				if (per != null) {
					if (per instanceof Student) {
						System.out.print("学生——");
					} else {
						System.out.print("教师——");
					}
					per.printMe();
				}
			}
		}
	}

	public Person[] getArrMemebers() {
		return arrMemebers;
	}

	public void setArrMemebers(Person[] arrMemebers) {
		this.arrMemebers = arrMemebers;
	}

	public Manager(Person[] arrMemebers) {
		super();
		this.arrMemebers = arrMemebers;
	}

	public Manager() {
		super();
		// TODO Auto-generated constructor stub
	}

}
